// 第14节：查询：find如何在js文本中使用

/* 
  前边使用find都是JS在文本中写完，然后复制到终端中执行，这样非常麻烦。在讲的过程中已经有很多小伙伴在问我如何像写
  update语句一样，在文本中直接运行。这节课我们就学习一下如何直接在文本中执行。
*/


// hasNext循环结果
  // 想在文本中执行我们的find语句要用到游标和循环的操作，先看一下代码，代码中我已经对每一句进行了注释。

// var db= connect('demo12');  //进行链接对应的集合collections
// var result=db.workmate.find(); //声明变量result, 并把查询结果赋值给result
// while(result.hasNext()){  //利用游标的hanNext()进行循环输出结果
//   printjson(result.next());  //用json格式打印结果
// }

// 写完后，现在你只需要在终端中进行load()就可以执行了，再也不用麻烦的复制粘贴了。



// forEach循环
  /* 
    利用hasNext循环结果，需要借助while的帮助，MongoDB也为我们提供了forEach循环，现在修改上边的代码，使用forEach循环来输出结果。
  */

var db=connect('demo12');
var result=db.workmate.find();
result.forEach(function(val){
  printjson(val);
})

/* 
  作为个人觉的forEach循环更为优雅。这两种方法都是非常不错的,凭借自己爱好进行选择吧。

  总结：那我们MongoDB的基础部分就全部讲完了，我们学会了它的增、删、改、查，你也可以使用MongoDB进行一些操作了。
  需要注意的是，只是这篇文章的完结，下篇文章我们进行讲解MongoDB，开始讲解MongoDB的索引。
*/

// 个人练习
  /* 虽然是这样查出来了,但是查出来的是所有,如何按照我之前的条件去查找呢? */
  // 1. 查同时爱好里面有看电影和做饭的人,按照年龄从小到大排序,并列出他的爱好出来
  var db=connect('demo12');
  var result=db.workmate.find({age:{$gt:30}},{name:1,age:1,_id:0}).sort({age:1});
  result.forEach(function(val){
    printjson(val)
  })
  